home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_jvm26.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  28KB  |  1,333 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9.  
  10.  
  11. void r28opcode_goto_backward(T28* C,T2 a1){
  12. T2 _offset=0;
  13. T2 _q=0;
  14. T2 _r=0;
  15. _offset=(/*(IRF4.9program_counter*//*(IRF4.6count*/(((T48*)(oBC28code))->_upper/*8*/)+(1)/*)*//*)*/)-(a1);
  16. r28opcode(C,167,0);
  17. _r=(_offset)%(256);
  18. _q=(_offset)/(256);
  19. /*[IF*/
  20. if((_r)==(0)){
  21. /*[IRF3.6add_u1*/{T2 b1=(256)-(_q);
  22. r48add_last((T48*)(oBC28code),b1);
  23. }/*]*/
  24. /*[IRF3.6add_u1*/{T2 b1=0;
  25. r48add_last((T48*)(oBC28code),b1);
  26. }/*]*/
  27. }
  28. else{
  29. /*[IRF3.6add_u1*/{T2 b1=(255)-(_q);
  30. r48add_last((T48*)(oBC28code),b1);
  31. }/*]*/
  32. /*[IRF3.6add_u1*/{T2 b1=(256)-(_r);
  33. r48add_last((T48*)(oBC28code),b1);
  34. }/*]*/
  35. }
  36. /*FI]*/
  37. }
  38.  
  39.  
  40. void r28runtime_error_inspect(T28* C,T0* a1){
  41. T2 _idx=0;
  42. T0* _rt=NULL;
  43. T0* _cp=NULL;
  44. _cp=oBC12constant_pool;
  45. _rt=X109result_type(a1);
  46. /*[IF*/
  47. if(X52is_character(_rt)){
  48. }
  49. /*FI]*/
  50. r28push_position(C,X109start_position(a1));
  51. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_63273),((T0*)ms28_50448));
  52. r28opcode_invokestatic(C,_idx,-(3));
  53. }
  54. /*No:CODE_ATTRIBUTE.add_u1*/
  55. /*No:CODE_ATTRIBUTE.opcode_aconst_null*/
  56.  
  57.  
  58. void r28opcode_putstatic(T28* C,T2 a1,T2 a2){
  59. r28opcode(C,179,a2);
  60. r28add_u2(a1);
  61. }
  62. /*No:CODE_ATTRIBUTE.opcode_i2f*/
  63.  
  64.  
  65. T2 r28opcode_ifnonnull(T28* C){
  66. T2 R=0;
  67. r28opcode(C,199,-(1));
  68. R=r28skip_2_bytes();
  69. return R;
  70. }
  71. /*No:CODE_ATTRIBUTE.opcode_d2f*/
  72.  
  73.  
  74. void r28opcode_getstatic(T28* C,T2 a1,T2 a2){
  75. r28opcode(C,178,a2);
  76. r28add_u2(a1);
  77. }
  78.  
  79.  
  80. void r28add_u2(T2 a1){
  81. /*[IRF3.6add_u1*/{T2 b1=(a1)/(256);
  82. r48add_last((T48*)(oBC28code),b1);
  83. }/*]*/
  84. /*[IRF3.6add_u1*/{T2 b1=(a1)%(256);
  85. r48add_last((T48*)(oBC28code),b1);
  86. }/*]*/
  87. }
  88. /*No:CODE_ATTRIBUTE.opcode_fdiv*/
  89. /*No:CODE_ATTRIBUTE.opcode_idiv*/
  90. /*No:CODE_ATTRIBUTE.opcode_ddiv*/
  91.  
  92.  
  93. void r28runtime_internal_exception_number(T28* C){
  94. T2 _idx=0;
  95. T0* _cp=NULL;
  96. _cp=oBC12constant_pool;
  97. _idx=r29idx_fieldref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_85275),((T0*)ms13_74));
  98. r28opcode_getstatic(C,_idx,1);
  99. }
  100.  
  101.  
  102. void r28opcode_iinc(T28* C,T2 a1,T2 a2){
  103. r28opcode(C,132,0);
  104. /*[IRF3.6add_u1*/{T2 b1=a1;
  105. r48add_last((T48*)(oBC28code),b1);
  106. }/*]*/
  107. /*[IRF3.6add_u1*/{T2 b1=a2;
  108. r48add_last((T48*)(oBC28code),b1);
  109. }/*]*/
  110. }
  111. /*No:CODE_ATTRIBUTE.opcode_iconst_i*/
  112.  
  113.  
  114. void r28clear(T28* C){
  115. /*[IRF3.3clear*/((((T48*)((T48*)(oBC28code))))->_upper)=(-(1));
  116. /*]*/
  117. /*[IRF3.2clear*//*[IRF3.3clear*/((((T48*)((T48*)(oBC47from_pc))))->_upper)=(-(1));
  118. /*]*/
  119. /*[IRF3.3clear*/((((T48*)((T48*)(oBC47to_pc))))->_upper)=(-(1));
  120. /*]*/
  121. /*[IRF3.3clear*/((((T48*)((T48*)(oBC47handler_pc))))->_upper)=(-(1));
  122. /*]*/
  123. /*[IRF3.3clear*/((((T48*)((T48*)(oBC47type_idx))))->_upper)=(-(1));
  124. /*]*/
  125. /*]*/
  126. C->_max_stack=0;
  127. C->_stack_level=0;
  128. C->_max_locals=r24max_locals((T24*)(oBC12jvm));
  129. }
  130. /*No:CODE_ATTRIBUTE.opcode_return*/
  131. /*No:CODE_ATTRIBUTE.opcode_dup2_x1*/
  132. /*No:CODE_ATTRIBUTE.opcode_swap*/
  133. /*No:CODE_ATTRIBUTE.opcode_aload_1*/
  134.  
  135.  
  136. void r28opcode_astore(T28* C,T2 a1){
  137. /*[IF*/
  138. if((a1)<=(3)){
  139. r28opcode(C,(75)+(a1),-(1));
  140. }
  141. else{
  142. r28opcode(C,58,-(1));
  143. /*[IRF3.6add_u1*/{T2 b1=a1;
  144. r48add_last((T48*)(oBC28code),b1);
  145. }/*]*/
  146. }
  147. /*FI]*/
  148. }
  149.  
  150.  
  151. void r28opcode_fstore(T28* C,T2 a1){
  152. /*[IF*/
  153. if((a1)<=(3)){
  154. r28opcode(C,(67)+(a1),-(1));
  155. }
  156. else{
  157. r28opcode(C,56,-(1));
  158. /*[IRF3.6add_u1*/{T2 b1=a1;
  159. r48add_last((T48*)(oBC28code),b1);
  160. }/*]*/
  161. }
  162. /*FI]*/
  163. }
  164.  
  165.  
  166. void r28opcode_dstore(T28* C,T2 a1){
  167. /*[IF*/
  168. if((a1)<=(3)){
  169. r28opcode(C,(71)+(a1),-(1));
  170. }
  171. else{
  172. r28opcode(C,57,-(1));
  173. /*[IRF3.6add_u1*/{T2 b1=a1;
  174. r48add_last((T48*)(oBC28code),b1);
  175. }/*]*/
  176. }
  177. /*FI]*/
  178. }
  179.  
  180.  
  181. void r28opcode_istore(T28* C,T2 a1){
  182. /*[IF*/
  183. if((a1)<=(3)){
  184. r28opcode(C,(59)+(a1),-(1));
  185. }
  186. else{
  187. r28opcode(C,54,-(1));
  188. /*[IRF3.6add_u1*/{T2 b1=a1;
  189. r48add_last((T48*)(oBC28code),b1);
  190. }/*]*/
  191. }
  192. /*FI]*/
  193. }
  194.  
  195.  
  196. T0* r28jvm_root_class(void){
  197. if(fBC12jvm_root_class==0){
  198. fBC12jvm_root_class=1;
  199. {T7*n=malloc(sizeof(*n));
  200. *n=M7;
  201. r7make(n,12);
  202. oBC12jvm_root_class=(T0*)n;
  203. }
  204. r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
  205. r7extend(((T7*)oBC12jvm_root_class),'\57');
  206. r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
  207. }
  208. return oBC12jvm_root_class;}
  209. /*No:CODE_ATTRIBUTE.program_counter*/
  210.  
  211.  
  212. void r28opcode_instanceof(T28* C,T2 a1){
  213. r28opcode(C,193,0);
  214. r28add_u2(a1);
  215. }
  216.  
  217.  
  218. void r28opcode_invokespecial(T28* C,T2 a1,T2 a2){
  219. r28opcode(C,183,a2);
  220. r28add_u2(a1);
  221. }
  222.  
  223.  
  224. void r28opcode_invokevirtual(T28* C,T2 a1,T2 a2){
  225. r28opcode(C,182,a2);
  226. r28add_u2(a1);
  227. }
  228. /*No:CODE_ATTRIBUTE.fz_se_runtime*/
  229.  
  230.  
  231. void r28check_closing(T28* C){
  232. /*[IRF3.4opcode_iconst_0*/r28opcode(C,3,1);
  233. /*]*/
  234. r28opcode_putstatic(C,(C)->_check_flag_idx/*12*/,-(1));
  235. r28resolve_u2_branch((C)->_skip_check/*16*/);
  236. }
  237.  
  238.  
  239. void r28check_opening(T28* C){
  240. T0* _cp=NULL;
  241. _cp=oBC12constant_pool;
  242. /*[IRF3.4opcode_iconst_1*/r28opcode(C,4,1);
  243. /*]*/
  244. C->_check_flag_idx=r29idx_fieldref3(((T29*)_cp),r28jvm_root_class(),((T0*)ms13_15550),((T0*)ms13_67));
  245. r28opcode_getstatic(C,(C)->_check_flag_idx/*12*/,1);
  246. C->_skip_check=r28opcode_ifne(C);
  247. r28opcode_putstatic(C,(C)->_check_flag_idx/*12*/,-(1));
  248. }
  249. /*No:CODE_ATTRIBUTE.append_u1*/
  250. /*No:CODE_ATTRIBUTE.opcode_dadd*/
  251. /*No:CODE_ATTRIBUTE.opcode_fadd*/
  252. /*No:CODE_ATTRIBUTE.opcode_iand*/
  253. /*No:CODE_ATTRIBUTE.opcode_iadd*/
  254.  
  255.  
  256. void r28resolve_u2_branch(T2 a1){
  257. T2 _offset=0;
  258. _offset=((/*(IRF4.9program_counter*//*(IRF4.6count*/(((T48*)(oBC28code))->_upper/*8*/)+(1)/*)*//*)*/)-(a1))+(1);
  259. /*[IRF3.5put*/(((T48*)(oBC28code))->_storage/*0*/)[a1]=((_offset)/(256));
  260. /*]*/
  261. /*[IRF3.5put*/(((T48*)(oBC28code))->_storage/*0*/)[(a1)+(1)]=((_offset)%(256));
  262. /*]*/
  263. }
  264.  
  265.  
  266. void r28opcode_new(T28* C,T2 a1){
  267. r28opcode(C,187,1);
  268. r28add_u2(a1);
  269. }
  270.  
  271.  
  272. void r28runtime_check_loop_variant(T28* C,T0* a1){
  273. T2 _idx=0;
  274. T0* _cp=NULL;
  275. _cp=oBC12constant_pool;
  276. X109compile_to_jvm(a1);
  277. r28push_position(C,X109start_position(a1));
  278. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_93418),((T0*)ms28_58370));
  279. r28opcode_invokestatic(C,_idx,-(5));
  280. }
  281.  
  282.  
  283. void r28push_position(T28* C,T0* a1){
  284. /*[IF*/
  285. if((a1)==((void*)(NULL))){
  286. /*[IRF3.4opcode_iconst_0*/r28opcode(C,3,1);
  287. /*]*/
  288. /*[IRF3.4opcode_iconst_0*/r28opcode(C,3,1);
  289. /*]*/
  290. /*[IRF3.4opcode_aconst_null*/r28opcode(C,1,1);
  291. /*]*/
  292. }
  293. else{
  294. r28opcode_push_integer(C,/*(IRF4.6line*/((((T59*)a1))->_mem_line_column/*4*/)/(1000)/*)*/);
  295. r28opcode_push_integer(C,/*(IRF4.6column*/((((T59*)a1))->_mem_line_column/*4*/)%(1000)/*)*/);
  296. r28opcode_ldc(C,r29idx_string((T29*)(oBC12constant_pool),r59path(((T59*)a1))));
  297. }
  298. /*FI]*/
  299. }
  300.  
  301.  
  302. T2 r28opcode_ifeq(T28* C){
  303. T2 R=0;
  304. r28opcode(C,153,-(1));
  305. R=r28skip_2_bytes();
  306. return R;
  307. }
  308. /*No:CODE_ATTRIBUTE.us_se_remove*/
  309. /*No:CODE_ATTRIBUTE.us_se_rename*/
  310. /*No:CODE_ATTRIBUTE.Java_lang_system*/
  311.  
  312.  
  313. void r28append_u2(T0* a1,T2 a2){
  314. /*[IRF3.6append_u1*/{T0* b1=a1;
  315. T2 b2=(a2)/(256);
  316. r7extend(((T7*)b1),((T3)(b2)));
  317. }/*]*/
  318. /*[IRF3.6append_u1*/{T0* b1=a1;
  319. T2 b2=(a2)%(256);
  320. r7extend(((T7*)b1),((T3)(b2)));
  321. }/*]*/
  322. }
  323.  
  324.  
  325. void r28runtime_sfw_open(T28* C){
  326. T2 _idx=0;
  327. T0* _cp=NULL;
  328. _cp=oBC12constant_pool;
  329. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_11496),((T0*)ms13_102372));
  330. r28opcode_invokestatic(C,_idx,0);
  331. }
  332.  
  333.  
  334. void r28runtime_sfr_open(T28* C){
  335. T2 _idx=0;
  336. T0* _cp=NULL;
  337. _cp=oBC12constant_pool;
  338. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_11456),((T0*)ms13_102372));
  339. r28opcode_invokestatic(C,_idx,0);
  340. }
  341.  
  342.  
  343. void r28opcode_push_as_float(T28* C,T0* a1){
  344. {int z1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(1)-(1)]/*)*/;
  345.  
  346. if((48==z1)){
  347. /*[IF*/
  348. if(((((T7*)a1))->_count/*4*/)==(1)){
  349. r28opcode(C,11,1);
  350. }
  351. else{
  352. {int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
  353.  
  354. if((46==z2)){
  355. /*[IF*/
  356. if(((((T7*)a1))->_count/*4*/)==(2)){
  357. r28opcode(C,11,1);
  358. }
  359.  else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
  360. r28opcode(C,11,1);
  361. }
  362. else{
  363. r28opcode_string2float(C,a1);
  364. }
  365. /*FI]*/
  366. }
  367.  else{r28opcode_string2float(C,a1);
  368. }}
  369. }
  370. /*FI]*/
  371. }
  372.  else 
  373. if((49==z1)){
  374. /*[IF*/
  375. if(((((T7*)a1))->_count/*4*/)==(1)){
  376. r28opcode(C,12,1);
  377. }
  378. else{
  379. {int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
  380.  
  381. if((46==z2)){
  382. /*[IF*/
  383. if(((((T7*)a1))->_count/*4*/)==(2)){
  384. r28opcode(C,12,1);
  385. }
  386.  else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
  387. r28opcode(C,12,1);
  388. }
  389. else{
  390. r28opcode_string2float(C,a1);
  391. }
  392. /*FI]*/
  393. }
  394.  else{r28opcode_string2float(C,a1);
  395. }}
  396. }
  397. /*FI]*/
  398. }
  399.  else 
  400. if((50==z1)){
  401. /*[IF*/
  402. if(((((T7*)a1))->_count/*4*/)==(1)){
  403. r28opcode(C,13,1);
  404. }
  405. else{
  406. {int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
  407.  
  408. if((46==z2)){
  409. /*[IF*/
  410. if(((((T7*)a1))->_count/*4*/)==(2)){
  411. r28opcode(C,13,1);
  412. }
  413.  else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
  414. r28opcode(C,13,1);
  415. }
  416. else{
  417. r28opcode_string2float(C,a1);
  418. }
  419. /*FI]*/
  420. }
  421.  else{r28opcode_string2float(C,a1);
  422. }}
  423. }
  424. /*FI]*/
  425. }
  426.  else{r28opcode_string2float(C,a1);
  427. }}
  428. }
  429. /*No:CODE_ATTRIBUTE.us_print_run_time_stack*/
  430. /*No:CODE_ATTRIBUTE.opcode_dup*/
  431. /*No:CODE_ATTRIBUTE.opcode_arraylength*/
  432. /*No:CODE_ATTRIBUTE.opcode_pop*/
  433. /*No:CODE_ATTRIBUTE.opcode_dup2*/
  434. /*No:CODE_ATTRIBUTE.opcode_pop2*/
  435. T0*oBC28tmp_string=NULL;
  436. /*No:CODE_ATTRIBUTE.max_stack*/
  437. /*No:CODE_ATTRIBUTE.opcode_aload_2*/
  438. /*No:CODE_ATTRIBUTE.opcode_iconst_m1*/
  439.  
  440.  
  441. void r28opcode_anewarray(T28* C,T2 a1){
  442. r28opcode(C,189,0);
  443. r28add_u2(a1);
  444. }
  445.  
  446.  
  447. T2 r28opcode_ifge(T28* C){
  448. T2 R=0;
  449. r28opcode(C,156,-(1));
  450. R=r28skip_2_bytes();
  451. return R;
  452. }
  453.  
  454.  
  455. T2 r28opcode_ifle(T28* C){
  456. T2 R=0;
  457. r28opcode(C,158,-(1));
  458. R=r28skip_2_bytes();
  459. return R;
  460. }
  461.  
  462.  
  463. T2 r28opcode_ifne(T28* C){
  464. T2 R=0;
  465. r28opcode(C,154,-(1));
  466. R=r28skip_2_bytes();
  467. return R;
  468. }
  469. /*No:CODE_ATTRIBUTE.opcode_fastore*/
  470. /*No:CODE_ATTRIBUTE.opcode_iastore*/
  471. /*No:CODE_ATTRIBUTE.opcode_iconst_0*/
  472. /*No:CODE_ATTRIBUTE.opcode_dastore*/
  473. /*No:CODE_ATTRIBUTE.opcode_bastore*/
  474. /*No:CODE_ATTRIBUTE.opcode_fconst_0*/
  475. /*No:CODE_ATTRIBUTE.opcode_dconst_0*/
  476. /*No:CODE_ATTRIBUTE.opcode_aastore*/
  477.  
  478.  
  479. void r28read_byte(T28* C){
  480. T2 _idx=0;
  481. T0* _cp=NULL;
  482. _cp=oBC12constant_pool;
  483. _idx=r29idx_class2(((T29*)_cp),((T0*)ms13_48469));
  484. r28opcode_checkcast(C,_idx);
  485. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_48469),((T0*)ms13_1688),((T0*)ms13_480));
  486. r28opcode_invokevirtual(C,_idx,0);
  487. }
  488.  
  489.  
  490. void r28runtime_die_with_code(T28* C){
  491. T2 _idx=0;
  492. T0* _cp=NULL;
  493. _cp=oBC12constant_pool;
  494. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_24024),((T0*)ms13_1000));
  495. r28opcode_invokestatic(C,_idx,-(1));
  496. }
  497.  
  498.  
  499. void r28runtime_se_remove(T28* C){
  500. T2 _idx=0;
  501. T0* _cp=NULL;
  502. _cp=oBC12constant_pool;
  503. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_13050a),((T0*)ms28_47418));
  504. r28opcode_invokestatic(C,_idx,-(1));
  505. }
  506.  
  507.  
  508. void r28runtime_se_rename(T28* C){
  509. T2 _idx=0;
  510. T0* _cp=NULL;
  511. _cp=oBC12constant_pool;
  512. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_13050),((T0*)ms28_148434));
  513. r28opcode_invokestatic(C,_idx,-(2));
  514. }
  515.  
  516.  
  517. void r28runtime_se_string2double(T28* C){
  518. T2 _idx=0;
  519. T0* _cp=NULL;
  520. _cp=oBC12constant_pool;
  521. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_34768),((T0*)ms28_39480));
  522. r28opcode_invokestatic(C,_idx,1);
  523. }
  524.  
  525.  
  526. void r28opcode_system_out(T28* C){
  527. T2 _idx=0;
  528. _idx=r29idx_fieldref3((T29*)(oBC12constant_pool),((T0*)ms28_35584),((T0*)ms13_1050),((T0*)ms13_36708a));
  529. r28opcode_getstatic(C,_idx,1);
  530. }
  531.  
  532.  
  533. void r28runtime_se_system(T28* C){
  534. T2 _idx=0;
  535. T0* _cp=NULL;
  536. _cp=oBC12constant_pool;
  537. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_13887),((T0*)ms28_47418));
  538. r28opcode_invokestatic(C,_idx,-(1));
  539. }
  540. /*No:CODE_ATTRIBUTE.opcode_f2i*/
  541. /*No:CODE_ATTRIBUTE.opcode_d2i*/
  542. /*No:CODE_ATTRIBUTE.fz_40*/
  543. /*No:CODE_ATTRIBUTE.fz_32*/
  544. /*No:CODE_ATTRIBUTE.fz_41*/
  545. /*No:CODE_ATTRIBUTE.fz_33*/
  546. /*No:CODE_ATTRIBUTE.fz_60*/
  547. /*No:CODE_ATTRIBUTE.fz_70*/
  548. /*No:CODE_ATTRIBUTE.fz_34*/
  549. /*No:CODE_ATTRIBUTE.fz_61*/
  550. /*No:CODE_ATTRIBUTE.fz_71*/
  551. /*No:CODE_ATTRIBUTE.fz_44*/
  552. /*No:CODE_ATTRIBUTE.fz_62*/
  553.  
  554.  
  555. void r28runtime_error(T28* C,T0* a1,T0* a2,T0* a3){
  556. T2 _idx=0;
  557. T0* _cp=NULL;
  558. _cp=oBC12constant_pool;
  559. r28push_position(C,a1);
  560. /*[IF*/
  561. if((a2)==((void*)(NULL))){
  562. /*[IRF3.4opcode_aconst_null*/r28opcode(C,1,1);
  563. /*]*/
  564. }
  565. else{
  566. r28opcode_ldc(C,r29idx_string(((T29*)_cp),X52run_time_mark(a2)));
  567. }
  568. /*FI]*/
  569. r28opcode_ldc(C,r29idx_string(((T29*)_cp),a3));
  570. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_26767),((T0*)ms28_321963));
  571. r28opcode_invokestatic(C,_idx,-(5));
  572. }
  573. /*No:CODE_ATTRIBUTE.fz_27*/
  574. /*No:CODE_ATTRIBUTE.fz_81*/
  575. /*No:CODE_ATTRIBUTE.opcode_ishl*/
  576. /*No:CODE_ATTRIBUTE.opcode_dmul*/
  577. /*No:CODE_ATTRIBUTE.opcode_fmul*/
  578. /*No:CODE_ATTRIBUTE.opcode_imul*/
  579. /*No:CODE_ATTRIBUTE.fz_37*/
  580. /*No:CODE_ATTRIBUTE.fz_82*/
  581. /*No:CODE_ATTRIBUTE.fz_29*/
  582. /*No:CODE_ATTRIBUTE.fz_38*/
  583. /*No:CODE_ATTRIBUTE.fz_83*/
  584. /*No:CODE_ATTRIBUTE.opcode_fcmpg*/
  585. /*No:CODE_ATTRIBUTE.opcode_dcmpg*/
  586.  
  587.  
  588. void r28opcode_string2double(T28* C,T0* a1){
  589. T2 _idx=0;
  590. _idx=r29idx_string((T29*)(oBC12constant_pool),a1);
  591. r28opcode_ldc(C,_idx);
  592. _idx=r29idx_methodref3((T29*)(oBC12constant_pool),((T0*)ms13_33536),((T0*)ms13_7520),((T0*)ms13_39480));
  593. r28opcode_invokestatic(C,_idx,1);
  594. }
  595. /*No:CODE_ATTRIBUTE.fz_39*/
  596. /*No:CODE_ATTRIBUTE.stack_level*/
  597. /*No:CODE_ATTRIBUTE.fz_49*/
  598. /*No:CODE_ATTRIBUTE.fz_58*/
  599.  
  600.  
  601. void r28append_u4(T0* a1,T2 a2){
  602. r28append_u2(a1,(a2)/(65536));
  603. r28append_u2(a1,(a2)%(65536));
  604. }
  605. /*No:CODE_ATTRIBUTE.opcode_i2b*/
  606. /*No:CODE_ATTRIBUTE.fz_69*/
  607.  
  608.  
  609. T2 r28extra_local_size1(T28* C){
  610. T2 R=0;
  611. R=(C)->_max_locals/*4*/;
  612. C->_max_locals=((C)->_max_locals/*4*/)+(1);
  613. return R;
  614. }
  615.  
  616.  
  617. void r28push_strange_integer(T28* C,T2 a1){
  618. T0* _cp=NULL;
  619. T2 _idx=0;
  620. _cp=oBC12constant_pool;
  621. /*[IRF3.3clear*/((((T7*)((T7*)(oBC28tmp_string))))->_count)=(0);
  622. /*]*/
  623. r2append_in(a1,oBC28tmp_string);
  624. _idx=r29idx_string(((T29*)_cp),oBC28tmp_string);
  625. r28opcode_ldc(C,_idx);
  626. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_41106),((T0*)ms13_11856),((T0*)ms13_41685));
  627. r28opcode_invokestatic(C,_idx,0);
  628. }
  629. /*No:CODE_ATTRIBUTE.opcode_iushr*/
  630. /*No:CODE_ATTRIBUTE.opcode_ior*/
  631.  
  632.  
  633. void r28opcode_push_as_double(T28* C,T0* a1){
  634. {int z1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(1)-(1)]/*)*/;
  635.  
  636. if((48==z1)){
  637. /*[IF*/
  638. if(((((T7*)a1))->_count/*4*/)==(1)){
  639. r28opcode(C,14,2);
  640. }
  641. else{
  642. {int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
  643.  
  644. if((46==z2)){
  645. /*[IF*/
  646. if(((((T7*)a1))->_count/*4*/)==(2)){
  647. r28opcode(C,14,2);
  648. }
  649.  else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
  650. r28opcode(C,14,2);
  651. }
  652. else{
  653. r28opcode_string2double(C,a1);
  654. }
  655. /*FI]*/
  656. }
  657.  else{r28opcode_string2double(C,a1);
  658. }}
  659. }
  660. /*FI]*/
  661. }
  662.  else 
  663. if((49==z1)){
  664. /*[IF*/
  665. if(((((T7*)a1))->_count/*4*/)==(1)){
  666. r28opcode(C,15,2);
  667. }
  668. else{
  669. {int z2=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/;
  670.  
  671. if((46==z2)){
  672. /*[IF*/
  673. if(((((T7*)a1))->_count/*4*/)==(2)){
  674. r28opcode(C,15,2);
  675. }
  676.  else if((((((T7*)a1))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))){
  677. r28opcode(C,15,2);
  678. }
  679. else{
  680. r28opcode_string2double(C,a1);
  681. }
  682. /*FI]*/
  683. }
  684.  else{r28opcode_string2double(C,a1);
  685. }}
  686. }
  687. /*FI]*/
  688. }
  689.  else{r28opcode_string2double(C,a1);
  690. }}
  691. }
  692.  
  693.  
  694. T0* r10command_name(void){
  695. T0* R=NULL;
  696. R=((T0*)ms14_29078);
  697. return R;
  698. }
  699. /*No:COMPILE_TO_JVM.nb_errors*/
  700. /*No:COMPILE_TO_JVM.state*/
  701.  
  702.  
  703. void r10error_level(T10* C,T0* a1){
  704. C->_state=9;
  705. /*[IRF3.6append*/{T0* b1=r10command_name();
  706. r7append((T7*)(oBC21explanation),b1);
  707. }/*]*/
  708. /*[IRF3.6append*/{T0* b1=((T0*)ms11_32864);
  709. r7append((T7*)(oBC21explanation),b1);
  710. }/*]*/
  711. /*[IRF3.6append*/{T0* b1=(C)->_level/*4*/;
  712. r7append((T7*)(oBC21explanation),b1);
  713. }/*]*/
  714. /*[IRF3.6append*/{T0* b1=((T0*)ms11_7788);
  715. r7append((T7*)(oBC21explanation),b1);
  716. }/*]*/
  717. /*[IRF3.6append*/{T0* b1=a1;
  718. r7append((T7*)(oBC21explanation),b1);
  719. }/*]*/
  720. /*[IRF3.6append*/{T0* b1=((T0*)ms13_47);
  721. r7append((T7*)(oBC21explanation),b1);
  722. }/*]*/
  723. r21print_as_error((T21*)(oBC12eh));
  724. }
  725. /*No:COMPILE_TO_JVM.root_class*/
  726.  
  727.  
  728. T0* r10system_tools(void){
  729. if(fBC12system_tools==0){
  730. fBC12system_tools=1;
  731. {T72*n=malloc(sizeof(*n));
  732. *n=M72;
  733. r72make(n);
  734. oBC12system_tools=(T0*)n;
  735. }
  736. }
  737. return oBC12system_tools;}
  738.  
  739.  
  740. void r10automat(T10* C){
  741. T0* _a=NULL;
  742. T2 _arg=0;
  743. _arg=1;
  744. while (!(((_arg)>(/*(IRF4.9argument_count*/((T68*)(r10command_arguments()))->_upper/*8*//*)*/))||(((C)->_state/*0*/)>(7)))) {
  745. _a=r10argument(_arg);
  746. {int z1=(C)->_state/*0*/;
  747.  
  748. if((0==z1)){
  749. /*[IF*/
  750. if((/*(IRF4.6item*/((((T7*)_a))->_storage/*0*/)[(1)-(1)]/*)*/)!=('\55')){
  751. C->_root_class=_a;
  752. r76compute_root_class((T76*)(oBC12run_control),_a);
  753. C->_state=1;
  754. }
  755.  else if(r7is_equal(ms10_7146,_a)){
  756. /*[IF*/
  757. if(((C)->_level/*4*/)!=((void*)(NULL))){
  758. r10error_level(C,_a);
  759. }
  760. else{
  761. /*[IRF3.3set_boost*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-6);
  762. /*]*/
  763. C->_level=_a;
  764. }
  765. /*FI]*/
  766. }
  767.  else if(r7is_equal(ms10_12942,_a)){
  768. /*[IF*/
  769. if(((C)->_level/*4*/)!=((void*)(NULL))){
  770. r10error_level(C,_a);
  771. }
  772. else{
  773. /*[IRF3.3set_no_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-5);
  774. /*]*/
  775. C->_level=_a;
  776. }
  777. /*FI]*/
  778. }
  779.  else if(r7is_equal(ms10_28042,_a)){
  780. /*[IF*/
  781. if(((C)->_level/*4*/)!=((void*)(NULL))){
  782. r10error_level(C,_a);
  783. }
  784. else{
  785. /*[IRF3.3set_require_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-4);
  786. /*]*/
  787. C->_level=_a;
  788. }
  789. /*FI]*/
  790. }
  791.  else if(r7is_equal(ms10_24622,_a)){
  792. /*[IF*/
  793. if(((C)->_level/*4*/)!=((void*)(NULL))){
  794. r10error_level(C,_a);
  795. }
  796. else{
  797. /*[IRF3.3set_ensure_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-3);
  798. /*]*/
  799. C->_level=_a;
  800. }
  801. /*FI]*/
  802. }
  803.  else if(r7is_equal(ms10_35232,_a)){
  804. /*[IF*/
  805. if(((C)->_level/*4*/)!=((void*)(NULL))){
  806. r10error_level(C,_a);
  807. }
  808. else{
  809. /*[IRF3.3set_invariant_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-2);
  810. /*]*/
  811. C->_level=_a;
  812. }
  813. /*FI]*/
  814. }
  815.  else if(r7is_equal(ms10_18469,_a)){
  816. /*[IF*/
  817. if(((C)->_level/*4*/)!=((void*)(NULL))){
  818. r10error_level(C,_a);
  819. }
  820. else{
  821. /*[IRF3.3set_loop_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-1);
  822. /*]*/
  823. C->_level=_a;
  824. }
  825. /*FI]*/
  826. }
  827.  else if(r7is_equal(ms10_15380,_a)){
  828. /*[IF*/
  829. if(((C)->_level/*4*/)!=((void*)(NULL))){
  830. r10error_level(C,_a);
  831. }
  832. else{
  833. /*[IRF3.3set_all_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(0);
  834. /*]*/
  835. C->_level=_a;
  836. }
  837. /*FI]*/
  838. }
  839.  else if(r7is_equal(ms10_21120,_a)){
  840. /*[IF*/
  841. if(((C)->_level/*4*/)!=((void*)(NULL))){
  842. r10error_level(C,_a);
  843. }
  844. else{
  845. /*[IRF3.3set_debug_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(1);
  846. /*]*/
  847. C->_level=_a;
  848. }
  849. /*FI]*/
  850. }
  851.  else if(r7is_equal(ms10_17908,_a)){
  852. /*[IRF3.3set_no_warning*/((((T21*)((T21*)(oBC12eh))))->_no_warning)=(1);
  853. /*]*/
  854. }
  855.  else if(r7is_equal((T7*)(((T0*)ms13_10392)),_a)){
  856. }
  857.  else if(r7is_equal(ms10_6552,_a)){
  858. /*[IRF3.3set_trace*/((((T76*)((T76*)(oBC12run_control))))->_trace)=(1);
  859. /*]*/
  860. }
  861.  else if(r7is_equal(ms10_6672,_a)){
  862. C->_state=2;
  863. }
  864.  else if(r7is_equal(ms10_318,_a)){
  865. C->_state=3;
  866. }
  867. else{
  868. /*[IRF3.6append*/{T0* b1=((T0*)ms10_47130);
  869. r7append((T7*)(oBC21explanation),b1);
  870. }/*]*/
  871. /*[IRF3.6append*/{T0* b1=_a;
  872. r7append((T7*)(oBC21explanation),b1);
  873. }/*]*/
  874. /*[IRF3.6append*/{T0* b1=((T0*)ms10_166);
  875. r7append((T7*)(oBC21explanation),b1);
  876. }/*]*/
  877. r21print_as_error((T21*)(oBC12eh));
  878. C->_state=9;
  879. }
  880. /*FI]*/
  881. }
  882.  else 
  883. if((1==z1)){
  884. /*[IF*/
  885. if((/*(IRF4.6item*/((((T7*)_a))->_storage/*0*/)[(1)-(1)]/*)*/)==('\55')){
  886. _arg=(_arg)-(1);
  887. }
  888. else{
  889. C->_start_proc=_a;
  890. }
  891. /*FI]*/
  892. C->_state=0;
  893. }
  894.  else 
  895. if((2==z1)){
  896. /*[IRF3.3set_cecil_path*/((((T76*)((T76*)(oBC12run_control))))->_cecil_path)=(_a);
  897. /*]*/
  898. C->_state=0;
  899. }
  900.  else {r24set_output_name((T24*)(oBC12jvm),_a);
  901. C->_state=0;
  902. }}
  903. _arg=(_arg)+(1);
  904. }
  905. /*[IF*/
  906. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  907. /*[IF*/
  908. if(((T76*)(oBC12run_control))->_trace/*4*/){
  909. /*[IF*/
  910. if(r76boost((T76*)(oBC12run_control))){
  911. /*[IRF3.3set_no_check*/((((T76*)((T76*)(oBC12run_control))))->_level)=(-5);
  912. /*]*/
  913. }
  914. /*FI]*/
  915. }
  916. /*FI]*/
  917. r22compile_to_jvm((T22*)(oBC12small_eiffel),(C)->_root_class/*8*/,(C)->_start_proc/*12*/);
  918. }
  919. /*FI]*/
  920. }
  921. /*No:COMPILE_TO_JVM.us_make*/
  922. /*No:COMPILE_TO_JVM.fz_dot*/
  923.  
  924.  
  925. T0* r10argument(T2 a1){
  926. T0* R=NULL;
  927. R=/*(IRF4.6item*/(((T68*)(r10command_arguments()))->_storage/*0*/)[a1]/*)*/;
  928. return R;
  929. }
  930.  
  931.  
  932. void r10make(T10* C){
  933. /*[IF*/
  934. if((/*(IRF4.9argument_count*/((T68*)(r10command_arguments()))->_upper/*8*//*)*/)<(1)){
  935. r72bad_use_exit((T72*)(r10system_tools()),((T0*)ms10_29078));
  936. }
  937. /*FI]*/
  938. r31search_for_verbose_flag((T31*)(oBC12echo));
  939. C->_start_proc=((T0*)ms14_1696);
  940. /*[IRF3.3set_drop_comments*/((((T71*)((T71*)(oBC12eiffel_parser))))->_drop_comments)=(1);
  941. /*]*/
  942. r10automat(C);
  943. }
  944. /*No:COMPILE_TO_JVM.level*/
  945. /*No:COMPILE_TO_JVM.argument_count*/
  946. /*No:COMPILE_TO_JVM.fz_verbose_flag*/
  947. /*No:COMPILE_TO_JVM.start_proc*/
  948. int fBC1command_arguments=0;
  949. T0*oBC1command_arguments=NULL;
  950.  
  951.  
  952. T0* r10command_arguments(void){
  953. if(fBC1command_arguments==0){
  954. T0* _arg=NULL;
  955. T2 _i=0;
  956. fBC1command_arguments=1;
  957. _i=se_argc;
  958. {T68*n=malloc(sizeof(*n));
  959. *n=M68;
  960. r68make(n,_i);
  961. oBC1command_arguments=(T0*)n;
  962. }
  963. while (!((_i)==(0))) {
  964. _i=(_i)-(1);
  965. _arg=((T0*)e2s(se_argv[_i]));
  966. /*[IRF3.5put*/((((T68*)oBC1command_arguments))->_storage/*0*/)[_i]=(_arg);
  967. /*]*/
  968. }
  969. }
  970. return oBC1command_arguments;}
  971. /*No:COMPILE_TO_JVM.us_compile_to_jvm*/
  972. /*No:TYPE_CHARACTER.start_position*/
  973.  
  974.  
  975. void r270jvm_initialize_local(T2 a1){
  976. /*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
  977. /*]*/
  978. /*[IRF3.6jvm_write_local*/{T2 b1=a1;
  979. r28opcode_istore((T28*)(oBC12code_attribute),b1);
  980. }/*]*/
  981. }
  982. int fBC270used_as_reference=0;
  983.  
  984.  
  985. void r270used_as_reference(void){
  986. if (fBC270used_as_reference==0){
  987. fBC270used_as_reference=1;
  988. r270load_ref(((T0*)ms14_16588));
  989. }}
  990. /*No:TYPE_CHARACTER.is_user_expanded*/
  991. /*No:TYPE_CHARACTER.id*/
  992. /*No:TYPE_CHARACTER.is_pointer*/
  993. /*No:TYPE_CHARACTER.jvm_check_class_invariant*/
  994.  
  995.  
  996. T0* r270to_runnable(T270* C,T0* a1){
  997. T0* R=NULL;
  998. R=(T0*)C;
  999. r270check_type(C);
  1000. return R;
  1001. }
  1002.  
  1003.  
  1004. T0* r270run_class(T270* C){
  1005. T0* R=NULL;
  1006. R=r22run_class((T0*)C);
  1007. return R;
  1008. }
  1009. /*No:TYPE_CHARACTER.us_item*/
  1010. /*No:TYPE_CHARACTER.is_like_current*/
  1011. /*No:TYPE_CHARACTER.is_bit*/
  1012. /*No:TYPE_CHARACTER.jvm_write_local*/
  1013.  
  1014.  
  1015. T0* r270smallest_ancestor(T270* C,T0* a1){
  1016. T0* R=NULL;
  1017. T0* _rto=NULL;
  1018. _rto=X52run_type(a1);
  1019. /*[IF*/
  1020. if(X52is_character(_rto)){
  1021. R=(T0*)C;
  1022. }
  1023. else{
  1024. R=r277smallest_ancestor((T277*)(r270type_character_ref()),_rto);
  1025. }
  1026. /*FI]*/
  1027. return R;
  1028. }
  1029.  
  1030.  
  1031. T0* r270run_time_mark(void){
  1032. T0* R=NULL;
  1033. R=((T0*)ms14_9936);
  1034. return R;
  1035. }
  1036. /*No:TYPE_CHARACTER.is_expanded*/
  1037. /*No:TYPE_CHARACTER.jvm_if_x_eq*/
  1038. /*No:TYPE_CHARACTER.jvm_xnewarray*/
  1039. int fBC12type_character_ref=0;
  1040. T0*oBC12type_character_ref=NULL;
  1041.  
  1042.  
  1043. T0* r270type_character_ref(void){
  1044. if(fBC12type_character_ref==0){
  1045. T0* _character_ref=NULL;
  1046. fBC12type_character_ref=1;
  1047. {T70*n=malloc(sizeof(*n));
  1048. *n=M70;
  1049. r70make(n,((T0*)ms14_16588),NULL);
  1050. _character_ref=(T0*)n;
  1051. }
  1052. {T277*n=malloc(sizeof(*n));
  1053. *n=M277;
  1054. /*[IRF3.3make*/((((T277*)(n)))->_base_class_name)=(_character_ref);
  1055. /*]*/
  1056. oBC12type_character_ref=(T0*)n;
  1057. }
  1058. }
  1059. return oBC12type_character_ref;}
  1060. /*No:TYPE_CHARACTER.jvm_push_local*/
  1061. /*No:TYPE_CHARACTER.fz_dot*/
  1062. /*No:TYPE_CHARACTER.is_like_feature*/
  1063.  
  1064.  
  1065. T6 r270is_a(T270* C,T0* a1){
  1066. T6 R=0;
  1067. /*[IF*/
  1068. if(X52is_character(a1)){
  1069. R=1;
  1070. }
  1071. else{
  1072. R=r63is_subclass_of((T63*)(r270base_class(C)),X52base_class(a1));
  1073. /*[IF*/
  1074. if(R){
  1075. r270used_as_reference();
  1076. }
  1077. /*FI]*/
  1078. }
  1079. /*FI]*/
  1080. /*[IF*/
  1081. if(!(R)){
  1082. r21add_type((T0*)C,((T0*)ms13_17730));
  1083. r21add_type(a1,((T0*)ms13_47));
  1084. }
  1085. /*FI]*/
  1086. return R;
  1087. }
  1088.  
  1089.  
  1090. T0* r270written_mark(void){
  1091. T0* R=NULL;
  1092. R=((T0*)ms14_9936);
  1093. return R;
  1094. }
  1095. /*No:TYPE_CHARACTER.is_character*/
  1096.  
  1097.  
  1098. void r270error(T0* a1,T0* a2){
  1099. r21add_position(a1);
  1100. r21error((T21*)(oBC12eh),a2);
  1101. }
  1102.  
  1103.  
  1104. void r270make(T270* C,T0* a1){
  1105. {T70*n=malloc(sizeof(*n));
  1106. *n=M70;
  1107. r70make(n,((T0*)ms14_9936),a1);
  1108. C->_base_class_name=(T0*)n;
  1109. }
  1110. }
  1111.  
  1112.  
  1113. T2 r270jvm_convert_to(T0* a1){
  1114. T2 R=0;
  1115. /*[IF*/
  1116. if(X52is_reference(a1)){
  1117. /*[IRF3.2jvm_to_reference*/{T0* _ca=NULL;
  1118. T2 _idx=0;
  1119. T0* _rc=NULL;
  1120. _ca=oBC12code_attribute;
  1121. _rc=r277run_class((T277*)(r270type_character_ref()));
  1122. r23jvm_basic_new(((T23*)_rc));
  1123. /*[IRF3.4opcode_dup_x1*/r28opcode(((T28*)_ca),90,1);
  1124. /*]*/
  1125. /*[IRF3.4opcode_swap*/r28opcode(((T28*)_ca),95,0);
  1126. /*]*/
  1127. _idx=r23jvm_constant_pool_index(((T23*)_rc));
  1128. _idx=r29idx_fieldref4((T29*)(oBC12constant_pool),_idx,((T0*)ms14_1764),((T0*)ms13_67));
  1129. r28opcode_putfield(((T28*)_ca),_idx,-(2));
  1130. }/*]*/
  1131. }
  1132. /*FI]*/
  1133. R=1;
  1134. return R;
  1135. }
  1136.  
  1137.  
  1138. void r270fatal_error_generic_list(T270* C){
  1139. r21add_type((T0*)C,((T0*)ms52_29184));
  1140. r21print_as_fatal_error((T21*)(oBC12eh));
  1141. }
  1142. /*No:TYPE_CHARACTER.is_array*/
  1143.  
  1144.  
  1145. T2 r270jvm_push_default(void){
  1146. T2 R=0;
  1147. /*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
  1148. /*]*/
  1149. R=1;
  1150. return R;
  1151. }
  1152. /*No:TYPE_CHARACTER.is_dummy_expanded*/
  1153.  
  1154.  
  1155. T0* r270generic_list(T270* C){
  1156. T0* R=NULL;
  1157. r270fatal_error_generic_list(C);
  1158. return R;
  1159. }
  1160.  
  1161.  
  1162. T0* r270base_class(T270* C){
  1163. T0* R=NULL;
  1164. T0* _bcn=NULL;
  1165. _bcn=(C)->_base_class_name/*4*/;
  1166. /*[IF*/
  1167. if((_bcn)!=((void*)(NULL))){
  1168. R=r70base_class(((T70*)_bcn));
  1169. }
  1170. else{
  1171. /*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
  1172. r7append((T7*)(oBC21explanation),b1);
  1173. }/*]*/
  1174. r21add_type((T0*)C,((T0*)ms13_47));
  1175. r21print_as_fatal_error((T21*)(oBC12eh));
  1176. }
  1177. /*FI]*/
  1178. return R;
  1179. }
  1180. /*No:TYPE_CHARACTER.jvm_if_x_ne*/
  1181. /*No:TYPE_CHARACTER.base_class_name*/
  1182. /*No:TYPE_CHARACTER.jvm_standard_is_equal*/
  1183. /*No:TYPE_CHARACTER.is_formal_generic*/
  1184.  
  1185.  
  1186. T6 r270is_a_in(T270* C,T0* a1,T0* a2){
  1187. T6 R=0;
  1188. T0* _ct=NULL;
  1189. T0* _t2=NULL;
  1190. T0* _t1=NULL;
  1191. /*[IF*/
  1192. if((r270written_mark())==((void*)(X52written_mark(a1)))){
  1193. R=1;
  1194. }
  1195. else{
  1196. _ct=(((T23*)a2))->_current_type/*0*/;
  1197. _t1=r270to_runnable(C,_ct);
  1198. _t2=X52to_runnable(a1,_ct);
  1199. /*[IF*/
  1200. if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
  1201. R=1;
  1202. }
  1203. else{
  1204. R=X52is_a(_t1,_t2);
  1205. }
  1206. /*FI]*/
  1207. }
  1208. /*FI]*/
  1209. return R;
  1210. }
  1211.  
  1212.  
  1213. T0* r270look_up_for(T270* C,T0* a1,T0* a2){
  1214. T0* R=NULL;
  1215. R=r63look_up_for((T63*)(r270base_class(C)),a1,a2);
  1216. return R;
  1217. }
  1218. /*No:TYPE_CHARACTER.jvm_to_reference*/
  1219. /*No:TYPE_CHARACTER.run_type*/
  1220.  
  1221.  
  1222. T6 r270has_creation(T270* C,T0* a1){
  1223. T6 R=0;
  1224. r21add_position(X50start_position(a1));
  1225. r270error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms269_100044));
  1226. return R;
  1227. }
  1228. /*No:TYPE_CHARACTER.expanded_initializer*/
  1229. /*No:TYPE_CHARACTER.fz_41*/
  1230. /*No:TYPE_CHARACTER.jvm_method_flags*/
  1231. /*No:TYPE_CHARACTER.is_boolean*/
  1232. /*No:TYPE_CHARACTER.is_generic*/
  1233. /*No:TYPE_CHARACTER.jvm_xaload*/
  1234. /*No:TYPE_CHARACTER.us_character_ref*/
  1235. /*No:TYPE_CHARACTER.is_real*/
  1236. /*No:TYPE_CHARACTER.is_any*/
  1237. /*No:TYPE_CHARACTER.nb_errors*/
  1238. /*No:TYPE_CHARACTER.us_character*/
  1239. /*No:TYPE_CHARACTER.is_basic_eiffel_expanded*/
  1240. /*No:TYPE_CHARACTER.jvm_descriptor_in*/
  1241. /*No:TYPE_CHARACTER.is_string*/
  1242.  
  1243.  
  1244. T6 r270is_native_array(T270* C){
  1245. T6 R=0;
  1246. T0* _tna=NULL;
  1247. _tna=(T0*)C;
  1248. if(NULL!=(_tna))switch(((T0*)_tna)->id) {
  1249. case 267: 
  1250. break;
  1251. default:
  1252. _tna=NULL;
  1253. };R=(_tna)!=((void*)(NULL));
  1254. return R;
  1255. }
  1256. /*No:TYPE_CHARACTER.is_integer*/
  1257. /*No:TYPE_CHARACTER.is_anchored*/
  1258. /*No:TYPE_CHARACTER.is_run_type*/
  1259. /*No:TYPE_CHARACTER.is_reference*/
  1260. /*No:TYPE_CHARACTER.is_none*/
  1261. /*No:TYPE_CHARACTER.jvm_return_code*/
  1262. /*No:TYPE_CHARACTER.jvm_target_descriptor_in*/
  1263. /*No:TYPE_CHARACTER.fz_inako*/
  1264. /*No:TYPE_CHARACTER.jvm_xastore*/
  1265. /*No:TYPE_CHARACTER.is_like_argument*/
  1266.  
  1267.  
  1268. void r270load_ref(T0* a1){
  1269. T0* _rf=NULL;
  1270. T0* _rc=NULL;
  1271. T0* _cn=NULL;
  1272. {T70*n=malloc(sizeof(*n));
  1273. *n=M70;
  1274. r70make(n,a1,NULL);
  1275. _cn=(T0*)n;
  1276. }
  1277. _rc=r63run_class((T63*)(r70base_class(((T70*)_cn))));
  1278. r23set_at_run_time(((T23*)_rc));
  1279. _rf=r23get_feature_with(((T23*)_rc),((T0*)ms14_1764));
  1280. }
  1281. int fBC270check_type=0;
  1282.  
  1283.  
  1284. void r270check_type(T270* C){
  1285. if (fBC270check_type==0){
  1286. T0* _rc=NULL;
  1287. T0* _bc=NULL;
  1288. fBC270check_type=1;
  1289. _bc=r270base_class(C);
  1290. /*[IF*/
  1291. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1292. _rc=r270run_class(C);
  1293. }
  1294. /*FI]*/
  1295. /*[IF*/
  1296. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1297. /*[IF*/
  1298. if(!((((T63*)_bc))->_is_expanded/*20*/)){
  1299. r270error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms270_43416));
  1300. }
  1301. /*FI]*/
  1302. }
  1303. /*FI]*/
  1304. }}
  1305.  
  1306.  
  1307. T2 r270jvm_stack_space(void){
  1308. T2 R=0;
  1309. /*[IF*/
  1310. /*AF*//*AE*/
  1311. R=1;
  1312. /*FI]*/
  1313. return R;
  1314. }
  1315. /*No:TYPE_CHARACTER.is_double*/
  1316.  
  1317.  
  1318. T2 r270jvm_expanded_from_reference(T0* a1){
  1319. T2 R=0;
  1320. T0* _ca=NULL;
  1321. T2 _idx=0;
  1322. T0* _rc=NULL;
  1323. _ca=oBC12code_attribute;
  1324. _rc=r277run_class((T277*)(r270type_character_ref()));
  1325. r23opcode_checkcast(((T23*)_rc));
  1326. _idx=r23jvm_constant_pool_index(((T23*)_rc));
  1327. _idx=r29idx_fieldref4((T29*)(oBC12constant_pool),_idx,((T0*)ms14_1764),((T0*)ms13_67));
  1328. r28opcode_getfield(((T28*)_ca),_idx,0);
  1329. R=1;
  1330. return R;
  1331. }
  1332.  
  1333.